package com.cloudkinto.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.cloudkinto.bo.storage.CellAvailableByBoxQueryBo;
import com.cloudkinto.bo.storage.CellAvailableBySkuQueryBo;
import com.cloudkinto.bo.storage.StorageLocationQueryBo;
import com.cloudkinto.vo.storage.CellAvailableVo;
import com.cloudkinto.vo.storage.LocationRes;
import com.cloudkinto.vo.storage.LocationTypeVo;
import com.cloudkinto.vo.storage.StorageLocationVo;
import com.cloudkinto.entity.StorageLocationDo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 库位表 Mapper 接口
 * </p>
 *
 * @author long
 * @since 2024-11-12
 */
public interface StorageLocationDao extends BaseMapper<StorageLocationDo> {
    List<StorageLocationVo> getList(@Param("ids") List<Long> ids, @Param("tenantId") Long tenantId);

    List<StorageLocationVo> getPageList(@Param("bo") StorageLocationQueryBo bo);

    List<CellAvailableVo> getCellAvailableBySku(@Param("bo") CellAvailableBySkuQueryBo bo);

    List<CellAvailableVo> getCellAvailableByBox(@Param("bo") CellAvailableByBoxQueryBo bo);

    List<CellAvailableVo> getCellAvailableByWareId(@Param("wareId") Long wareId);

    List<LocationTypeVo> getRackType(List<Long> ids);

    LocationRes getPickingRecommendRack(int stockAttribute, Long whId);
}
